<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      // 考察get,在作比较的时候也是读取变量的时候
      // let _default = 0;

      // Object.defineProperty(window, "a", {
      //   get() {
      //     return ++_default;
      //   },
      //   set() {},
      // });
      // if (a === 1 && a === 2 && a === 3) {
      //   console.log("你赢了");
      // }
      // let _default = {};
      // Object.defineProperty(window, "a", {
      //   get() {
      //     return _default;
      //   },
      //   set(value) {
      //     _default.type = value;
      //     _default.length = value.length;
      //     return _default;
      //   },
      // });
      // a = "object";
      // console.log(a);
      /*
      {
        type:'object'
        length:6
      }
      */
      // b = "array";
      // console.log(b);
      /*
      {
        type:'array'
        length:6
      }
      */

      //考察属性设置
      let oldObj = {
        a: 1,
        b: 2,
        c: 3,
      };
      // let obj = {
      //   a: 1,
      //   b: 2,
      //   c: 3,
      // };
      let obj = {};
      for (const key in oldObj) {
        Object.defineProperty(obj, key, {
          //能否被遍历
          enumerable: true,
          //对象的属性是否可读写
          configurable: true,
          //对象的属性是否能被计算
          writable: key === "b" ? false : true,
          value: ++oldObj[key],
        });
      }

      for (const key in obj) {
        obj[key] += 1;
      }
      console.log(obj);
      /*
      需要返回的值为 3 3 5
      */
      /* 
      {
        a:3,
        b:3,
        c:5
      }
      */
    </script>
  </body>
</html>
